"""
描述
有一个m*n\m∗n 大小的数据表，你会依次进行以下5种操作：
1.输入m\m 和n\n ，初始化m*n\m∗n 大小的表格。
2.输入x_1x
1
​
 、y_1y
1
​
 、x_2x
2
​
 、y_2y
2
​
 ，交换坐标在(x_1,y_1)(x
1
​
 ,y
1
​
 )和(x_2,y_2)(x
2
​
 ,y
2
​
 )的两个数。
3.输入x\x ，在第x\x 行上方添加一行。
4.输入y\y ，在第y\y 列左边添加一列。
5.输入x\x 、y\y ，查找坐标为(x,y)\(x,y) 的单元格的值。
请编写程序，判断对表格的各种操作是否合法。

详细要求:

1.数据表的最大规格为9行*9列，对表格进行操作时遇到超出规格应该返回错误。
2.对于插入操作，如果插入后行数或列数超过9了则应返回错误。如果插入成功了则将数据表恢复至初始化的m*n\m∗n 大小，多出的数据则应舍弃。
3.所有输入坐标操作，对m*n\m∗n 大小的表格，行号坐标只允许0~m-1，列号坐标只允许0~n-1。超出范围应该返回错误。

本题含有多组样例输入！行列从0开始标号
数据范围：数据组数：1\le t\le 5\1≤t≤5
进阶：时间复杂度：O(1)\O(1) ，空间复杂度：O(1)\O(1)
输入描述：
输入数据按下列顺序输入：
1 表格的行列值
2 要交换的两个单元格的行列值
3 输入要插入的行的数值
4 输入要插入的列的数值
5 输入要查询的单元格的坐标

输出描述：
输出按下列顺序输出：
1 初始化表格是否成功，若成功则返回0， 否则返回-1
2 输出交换单元格是否成功
3 输出插入行是否成功
4 输出插入列是否成功
5 输出查询单元格数据是否成功
"""


def create_table(x, y):
    if 0 < x <= 9 and 0 < y <= 9:
        global mytable
        mytable = [[i + j for j in range(y)] for i in range(x)]
        print('0')
    else:
        print('-1')


def func(x, a):
    return True if x in range(a) else False


def exchange_value(x1, y1, x2, y2):
    if all(map(func, [x1, x2], [a, a])) and all(map(func, [y1, y2], [b, b])):
        mytable[x1][y1], mytable[x2][y2] = mytable[x2][y2], mytable[x1][y1]
        print('0')
    else:
        print('-1')


def add_row(x):
    if func(x, a) and a + 1 <= 9:
        mytable.insert(x - 1, [j for j in range(b)])
        mytable.pop()
        print('0')
    else:
        print('-1')


def add_colomn(y):
    if func(y, b) and b + 1 <= 9:
        for i in range(a):
            mytable[i].insert(y - 1, i)
            mytable[i].pop()
        print('0')
    else:
        print('-1')


def check_cell(x, y):
    if func(x, a) and func(y, b):
        print('0')
    else:
        print('-1')


while True:
    try:
        a, b = map(int, input().split())
        create_table(a, b)
        c, d, e, f = map(int, input().split())
        exchange_value(c, d, e, f)
        g = int(input())
        add_row(g)
        h = int(input())
        add_colomn(h)
        k, l = map(int, input().split())
        check_cell(k, l)
    except:
        break
